Any variable or function declared in the global scope implicitly becomes attached to the global object (the window
object in a browser
environment). To make it explicit this variable or function should be a property of window
. When it is meant to be used just locally, it
should be declared with the const
or let
keywords (since ECMAScript 2015) or within an Immediately-Invoked Function
Expression (IIFE).
This rule should not be activated when modules are used.
Noncompliant code example
var myVar = 42; // Noncompliant
function myFunc() { } // Noncompliant
Compliant solution
window.myVar = 42;
window.myFunc = function() { };
or
let myVar = 42;
let myFunc = function() { }
or
// IIFE
(function() {
var myVar = 42;
function myFunc() { }
})();